#ifndef ENTITYPOINT_H
#define ENTITYPOINT_H

#include "Entity.h"

class QUINCE_DOC_EXPORT EntityPoint : public Entity, public QPointF
{
    Q_OBJECT
    Q_ENUMS(PointType)
    Q_PROPERTY(PointType type READ pointType WRITE setPointType);
public:
    enum PointType
    {
        kUnknownType,
        kRegular,
        kMark,
        kControl,
        kSmooth,
    };

    PointType pointType() const { return m_type; }

    static EntityPoint * create(const QPointF &pos = QPointF(), PointType pType = kRegular);
    static EntityPoint * create(double x, double y, PointType pType = kRegular);
public Q_SLOTS:
    void setPos(const QPointF &);
    void setPointType(PointType t);

protected:
    EntityPoint();
    EntityPoint(double x, double y, PointType ty);

private:
    PointType m_type;
};

#endif // ENTITYPOINT_H
